From 00275dfc9f2f5ddd841053f516f4f5274da8aa71 Mon Sep 17 00:00:00 2001 From: David Mansfield Date: Tue, 6 May 2014 18:50:00 +0000 Subject: [PATCH] GdkCursor: Don't leak a cairo surface The function gdk_cursor_new_from_pixbuf creates a cairo surface to pass to its backend implementation, but doesn't destroy it afterwards. https://bugzilla.gnome.org/show_bug.cgi?id=729670 --- gdk/gdkcursor.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gdk/gdkcursor.c b/gdk/gdkcursor.c index 914d2fbec4..af2de2a9d4 100644 --- a/gdk/gdkcursor.c +++ b/gdk/gdkcursor.c @@ -318,6 +318,7 @@ gdk_cursor_new_from_pixbuf (GdkDisplay *display, const char *option; char *end; gint64 value; + GdkCursor *cursor; g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); @@ -346,7 +347,11 @@ gdk_cursor_new_from_pixbuf (GdkDisplay *display, surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 1, NULL); - return GDK_DISPLAY_GET_CLASS (display)->get_cursor_for_surface (display, surface, x, y); + cursor = GDK_DISPLAY_GET_CLASS (display)->get_cursor_for_surface (display, surface, x, y); + + cairo_surface_destroy (surface); + + return cursor; } /** -- 2.30.2